#ifndef VTKSCENE_H
#define VTKSCENE_H

#if defined DLL_EXPORT
#define DECLDIR __declspec(dllexport)
#else
#define DECLDIR __declspec(dllimport)
#endif

#include "vtkmethods.h"
#include <map>
#include <vtkSmartPointer.h>
#include <vtkActor.h>
#include <vtkRenderer.h>
#include <vtkRenderWindow.h>
#include <vtkRenderWindowInteractor.h>
#include <vtkTransformCollection.h>

namespace vtkMethods
{
	class vtkScene
	{
		public:
			// Constructor
			DECLDIR vtkScene();

			// Desctructor
			DECLDIR ~vtkScene();

			// Memeber variables
			std::map<const char *,vtkSmartPointer<vtkActor>> ActorList;
			vtkSmartPointer<vtkRenderer> renderer; // vtkRenderer

			// Member methods
			DECLDIR void addSTLActor(const char *, std::string); // Add Actor to Scene
			DECLDIR void getActor(void); // Get Actor in Scene
			DECLDIR void removeActor(const char *); // Remove Actor in Scene
			DECLDIR void removeActors(void);

		private:
			DECLDIR void update(void);

	};
}
#endif // VTKSCENE_H